%{
#include <stdio.h>
#include <stdlib.h>
#include "y.tab.h"

int lineCounter = 0;
extern int yylval;
%}

%%
"function"	{ return FUNCTION; }
"main"		{ return MAIN; }
"var"		{ return VAR; }
"add"		{ return ADD; }
"mult"		{ return MULT; }
"label" 	{ return LABEL; }
"and"		{ return AND; }
"or"		{ return OR; }
"not"		{ return NOT; }
"move"		{ return MOVE; }
"ifzero"	{ return IFZERO; }
"iftrue"	{ return IFTRUE; }
"iffalse"	{ return IFFALSE; }
"ifgreater"	{ return IFGREATER; }
"ifless"	{ return IFLESS; }
"ifequal"	{ return IFEQUAL; }
"goto"		{ return GOTO; }
"call"		{ return CALL; }
"read"		{ return READ; }
"write"		{ return WRITE; }
"return"	{ return RETURN; }
"skip"		{ return SKIP; }
"restore"	{ return RESTORE; }
"setparam"	{ return SETPARAM; }
"true"		{ return TRUE; }
"false"		{ return FALSE; }
"ref"		{ return REF; }
"val"		{ return VAL; }
"res"		{ return RES; }
"valres"	{ return VALRES; }
"integer"	{ return INTEGER; }
"string"	{ return STRING; }
"boolean"	{ return BOOLEAN; }
[0-9]+		{ yylval = atoi(yytext); return NUMBER; }
[a-zA-Z]	{ yylval = yytext[0] - 'a'; return NAME; }
\ 			{ ; }
\n			{ nextline(); }
\t			{ ; }
"#".*\n		{ nextline(); }
.			{ yyerror("token invalido.\n"); }
%%
#ifndef yywrap
yywrap() { return 1; }
#endif
